package com.jia.leetCode;

import java.util.Stack;

/**
 * 5134.将每个元素替换为右侧最大元素
 * 
 * 
 * 给你一个数组 arr ，请你将每个元素用它右边最大的元素替换，如果是最后一个元素，用 -1 替换。

	完成所有替换操作后，请你返回这个数组。
	
	 
	
	示例：
	
	输入：arr = [17,18,5,4,6,1]
	输出：[18,6,6,6,1,-1]
	 
	
	提示：
	
	1 <= arr.length <= 10^4
	1 <= arr[i] <= 10^5
	
	 * 
 * 
 * @author Administrator
 *
 */
public class Pro5134 {
    public int[] replaceElements(int[] arr) {
        Stack<Integer> stack = new Stack<>();
        for(int i = arr.length - 1; i > 0; i--) {
        	if(stack.size() == 0) stack.push(arr[i]);
        	else {
        		if(arr[i] < stack.peek()) {
        			stack.push(stack.peek());
        		}else {
        			stack.push(arr[i]);
        		}
        	}
        }
        for(int i = 0; i < arr.length-1; i++) {
        	arr[i] = stack.pop();
        }
        arr[arr.length - 1] = -1;
        return arr;
    }
}
